When a source application program needs to transfer data to a destination application program, there is usually more than one access mechanism available to use in the transfer. For example within the Microsoft Windows.RTM. operating system, a source application could use OLE automation to transfer the data, or the source application might save the data into a file, then start the destination application and pass the file name on the command line so that the destination application then reads the file.
Similarly, the data can often be transferred using one of several data formats. For example, image data can often be transferred using a bit map image file (BMP), a GIF image file, JPEG, etc. A destination application program may only be able to accept one of these formats, or the destination application program may be able to accept more than one format, in which case, one of the formats can be selected.
When the source application is designed to obtain data from an input device, and the data is then sent to one of many different destination application programs, using one of several different access mechanisms, and using one of several different data formats, the number of combinations becomes very large. Prior art methods of transferring data used a different program for each combination, such that, for example, there is a program for transferring data to Microsoft Word using OLE automation and using the BMP data format. A second transfer program must be used to transfer to Microsoft Word using OLE automation with the GIF data format. A third transfer program is needed to transfer to Word using BMP and launching word with the file name on the command line. Thus, in the prior art, large numbers of transfer programs are needed to transfer data to several application programs using only a few access mechanisms and only a few data formats, because of the large number of combinations that arise.
Also, when the transfer programs are created, they naturally tend to copy programming code when creating a new transfer program, since often the operation is the same. For example, the code to format data into the BMP format might be used in most transfer programs that transfer using the BMP data format. However, if this code needs to be modified, it has to be modified in each of the programs that use the code, thus incurring high cost, and reduced reliability.
Another disadvantage of this method is that a new receiving application program cannot receive data until a new transfer program is written for it, even if it is capable of using the same access mechanism, since the transfer programs are all tailored to each particular receiving application.
It is thus apparent that there is a need in the art for an improved method or apparatus that reduces the number of transfer programs needed to transfer data from one application program to other application programs using a variety of access mechanisms and data formats. The present invention meets these and other needs in the art.